﻿package plugin.superstore.game
{
    import com.core.*;
    import com.sh.game.util.*;
    import flash.geom.*;
    import flash.utils.*;
    import morn.core.components.*;
    import morn.core.handlers.*;
    import uiresource.store.*;
    import view.*;
    import view.mornExtends.*;
    import vo.*;

    public class StoreList extends StoreListUI
    {
        private var timeDic:Dictionary;
        private var timer:int = 0;
        private var cfgStore:Object;
        private var curType:int = 0;
        private var curTab:int = 0;

        public function StoreList()
        {
            this.timeDic = new Dictionary();
            this.cfgStore = ConfigDictionary.data.storeMsg;
            this.initEvent();
            return;
        }// end function

        private function initEvent() : void
        {
            btn_next.clickHandler = new Handler(this.toNext);
            btn_pre.clickHandler = new Handler(this.toPre);
            return;
        }// end function

        private function toPre() : void
        {
            var _loc_1:* = list;
            var _loc_2:* = list.page - 1;
            _loc_1.page = _loc_2;
            txt_page.text = (list.page + 1) + "/" + list.totalPage;
            return;
        }// end function

        private function toNext() : void
        {
            var _loc_1:* = list;
            var _loc_2:* = list.page + 1;
            _loc_1.page = _loc_2;
            txt_page.text = (list.page + 1) + "/" + list.totalPage;
            return;
        }// end function

        public function show(param1:int, param2:int) : void
        {
            var _loc_3:Object = null;
            var _loc_8:Object = null;
            var _loc_11:Array = null;
            var _loc_12:Object = null;
            var _loc_13:int = 0;
            var _loc_15:int = 0;
            var _loc_16:Object = null;
            if (this.curType != param1)
            {
                list.page = 0;
            }
            else if (this.curTab != param2)
            {
                list.page = 0;
            }
            this.curType = param1;
            this.curTab = param2;
            for (_loc_3 in this.timeDic)
            {
                
                delete this.timeDic[_loc_3];
            }
            if (this.timer > 0)
            {
                clearInterval(this.timer);
                this.timer = 0;
            }
            var _loc_4:* = this.cfgStore[param1][param2];
            var _loc_5:* = ConfigDictionary.data.item;
            var _loc_6:* = UserData.getUserData("career");
            var _loc_7:Array = [];
            var _loc_9:* = ModelProxy.getValue("data", "hefu");
            var _loc_10:* = int(ModelProxy.getValue("data", "hefuday")) + 1;
            for each (_loc_12 in _loc_4)
            {
                
                _loc_8 = ItemObject.create(_loc_5[_loc_12.itemid]);
                if (_loc_8)
                {
                    if (_loc_8.career > 0)
                    {
                        if (_loc_8.career != _loc_6)
                        {
                            continue;
                        }
                    }
                }
                else
                {
                    continue;
                }
                if (_loc_12.starttime)
                {
                    _loc_11 = _loc_12.starttime.split("#");
                    switch(int(_loc_11[0]))
                    {
                        case 4:
                        {
                            if (!_loc_9)
                            {
                                break;
                            }
                            if (_loc_10 < _loc_11[1])
                            {
                                break;
                            }
                            break;
                        }
                        default:
                        {
                            break;
                        }
                    }
                }
                if (_loc_12.endtime)
                {
                    _loc_11 = _loc_12.endtime.split("#");
                    switch(int(_loc_11[0]))
                    {
                        case 4:
                        {
                            if (!_loc_9)
                            {
                                break;
                            }
                            if (_loc_10 > _loc_11[1])
                            {
                                break;
                            }
                            break;
                        }
                        default:
                        {
                            break;
                        }
                    }
                }
                _loc_7.push({storeMsg:_loc_12, itemMsg:_loc_8});
            }
            _loc_13 = _loc_7.length - 1;
            while (_loc_13 > 0)
            {
                
                _loc_15 = 0;
                while (_loc_15 < _loc_13)
                {
                    
                    if (int(_loc_7[_loc_15].storeMsg.index) > int(_loc_7[(_loc_15 + 1)].storeMsg.index))
                    {
                        _loc_16 = _loc_7[_loc_15];
                        _loc_7[_loc_15] = _loc_7[(_loc_15 + 1)];
                        _loc_7[(_loc_15 + 1)] = _loc_16;
                    }
                    _loc_15++;
                }
                _loc_13 = _loc_13 - 1;
            }
            var _loc_14:Array = [];
            for each (_loc_8 in _loc_7)
            {
                
                this.checkLimit(_loc_8, _loc_14);
            }
            list.array = _loc_14;
            list.renderHandler = new Handler(this.listRender);
            txt_page.text = (list.page + 1) + "/" + list.totalPage;
            return;
        }// end function

        private function checkLimit(param1:Object, param2:Array) : void
        {
            var _loc_5:String = null;
            var _loc_6:Array = null;
            var _loc_7:int = 0;
            var _loc_8:int = 0;
            var _loc_9:Object = null;
            var _loc_10:Array = null;
            var _loc_11:Object = null;
            var _loc_12:Object = null;
            var _loc_13:int = 0;
            var _loc_14:int = 0;
            var _loc_3:* = param1.storeMsg.showlimit;
            if (_loc_3 == null)
            {
                param2.push(param1);
                return;
            }
            var _loc_4:* = _loc_3.split("&");
            for each (_loc_5 in _loc_4)
            {
                
                _loc_6 = _loc_5.split("#");
                switch(int(_loc_6[0]))
                {
                    case 1:
                    {
                        _loc_7 = UserData.getUserData("level");
                        if (_loc_6[1] > _loc_7)
                        {
                            return;
                        }
                        break;
                    }
                    case 2:
                    {
                        _loc_8 = UserData.getUserData("rein");
                        if (_loc_6[1] > _loc_8)
                        {
                            return;
                        }
                        break;
                    }
                    case 3:
                    {
                        _loc_9 = UserData.getUserData();
                        if (_loc_6[1] > _loc_9.ability.nbValue)
                        {
                            return;
                        }
                        break;
                    }
                    case 4:
                    {
                        _loc_10 = ModelProxy.getValue("data", "baoshiTianguanProgress");
                        if (_loc_10 != null)
                        {
                            _loc_11 = ConfigDictionary.data.juezhantianguan;
                            _loc_12 = _loc_11[_loc_10[0]][_loc_10[1]];
                            _loc_13 = int(_loc_6[1] / 100);
                            _loc_14 = int(_loc_6[1] % 100);
                            if (_loc_12.id < _loc_13 || _loc_12.id == _loc_13 && _loc_12.smallid <= _loc_14)
                            {
                                return;
                            }
                        }
                        else
                        {
                            return;
                        }
                        break;
                    }
                    default:
                    {
                        break;
                    }
                }
            }
            param2.push(param1);
            return;
        }// end function

        private function listRender(param1:Component, param2:int) : void
        {
            var _loc_3:Object = null;
            var _loc_4:Object = null;
            var _loc_5:Object = null;
            var _loc_6:FlashItem = null;
            var _loc_7:Label = null;
            var _loc_8:Button = null;
            var _loc_9:Image = null;
            var _loc_10:Label = null;
            if (param2 < list.length)
            {
                _loc_3 = param1.dataSource;
                _loc_4 = ConfigDictionary.data.item;
                _loc_5 = ItemObject.create(_loc_4[_loc_3.storeMsg.costtype]);
                _loc_6 = param1.getChildByName("fi") as FlashItem;
                _loc_3.itemMsg.count = _loc_3.storeMsg.containnum > 1 ? (_loc_3.containnum) : ("");
                _loc_6.effshow = true;
                _loc_6.data = _loc_3.itemMsg;
                _loc_7 = param1.getChildByName("txt_name") as Label;
                _loc_7.isHtml = true;
                _loc_7.text = "<font color=\'" + MColor.getqualitycolor(_loc_3.itemMsg.quality) + "\'>" + _loc_3.itemMsg.name + "</font>";
                _loc_8 = param1.getChildByName("btn_gm") as Button;
                _loc_8.disabled = false;
                _loc_8.clickHandler = new Handler(this.toGm, [{msg:_loc_3.storeMsg, item:_loc_3.itemMsg}]);
                _loc_9 = param1.getChildByName("moneyType") as Image;
                _loc_9.url = this.getImgType(_loc_3.storeMsg.costtype);
                _loc_10 = param1.getChildByName("money") as Label;
                _loc_10.text = _loc_3.storeMsg.nowprice + _loc_5.name;
            }
            return;
        }// end function

        private function toGm(param1:Object) : void
        {
            var _loc_2:* = this.localToGlobal(new Point(380, 270));
            param1.showPosition = _loc_2;
            DialogMgr.instance.open(AppDialog.SC_BUY, param1);
            return;
        }// end function

        private function getMoney(param1:int) : Number
        {
            var _loc_2:* = UserData.getBagData();
            var _loc_3:Number = 0;
            switch(param1)
            {
                case 1:
                {
                    _loc_3 = _loc_2.bgold;
                    break;
                }
                case 3:
                {
                    _loc_3 = _loc_2.money;
                    break;
                }
                case 2:
                {
                    _loc_3 = _loc_2.bonus;
                    break;
                }
                case 5:
                {
                    _loc_3 = _loc_2.contribution;
                    break;
                }
                case 6:
                {
                    _loc_3 = _loc_2.gold;
                    break;
                }
                case 9:
                {
                    _loc_3 = _loc_2.zuoqi;
                    break;
                }
                case 10:
                {
                    _loc_3 = _loc_2.yuyi;
                    break;
                }
                case 11:
                {
                    _loc_3 = _loc_2.shengwang;
                    break;
                }
                case 15:
                {
                    _loc_3 = _loc_2.jifen;
                    break;
                }
                default:
                {
                    break;
                }
            }
            return _loc_3;
        }// end function

        private function getImgType(param1:int) : String
        {
            var _loc_2:String = null;
            switch(param1)
            {
                case 3:
                {
                    _loc_2 = "png.common.cs2_yuanbao";
                    break;
                }
                case 6:
                {
                    _loc_2 = "png.common.cs2_jinbi";
                    break;
                }
                case 1:
                {
                    _loc_2 = "png.common.bgold";
                    break;
                }
                case 2:
                {
                    _loc_2 = "png.common.cs2_qian";
                    break;
                }
                default:
                {
                    _loc_2 = "png.common.jifen";
                    break;
                    break;
                }
            }
            return _loc_2;
        }// end function

    }
}
